/**
 * @file    If_do.h
 * @brief   驱动管理-输出DO
 * @author  Liuwei
 * @version 1.0.1
 * @date    2023-04-22
 * 
 * @copyright Copyright (c) 2023 JBD-Energy Storage Technology Co. LTD
 * 
 * @par 修改日志:
 * <table>
 * <tr><th>Date       <th>Version   <th>Author   <th>Description
 * <tr><td>2023-04-22 <td>1.0.1     <td>Liuwei   <td>首次创建
 * </table>
 */

#ifndef __IF_DO_H_
#define __IF_DO_H_

/* file includes -------------------------------------------------------------*/
#include <stdint.h>
/* cplusplus -----------------------------------------------------------------*/
#ifdef __cplusplus
extern "C" {
#endif

/* macro/define/typedef ------------------------------------------------------*/
typedef enum
{
    DO_OUT_ON  ,
    DO_OUT_OFF , 
}do_state_type;

typedef enum
{
    DO_AUTO_ADDR ,   /* !< (00) 自动寻址输出 */
    DO_SOC_LED1  ,   /* !< (01) SOC1 */
    DO_SOC_LED2  ,   /* !< (02) SOC2 */
    DO_SOC_LED3  ,   /* !< (03) SOC3 */
    DO_SOC_LED4  ,   /* !< (04) SOC4 */
    DO_SOC_LED5  ,   /* !< (05) SOC5 */
    DO_SOC_LED6  ,   /* !< (06) SOC6 */
    DO_MOS_LED   ,   /* !< (07) MOS状态LED灯 */
    DO_ALM_LED   ,   /* !< (08) LED告警指示灯 */
    DO_RUN_LED   ,   /* !< (09) LED运行指示灯 */
    DO_RLY_FAULT ,   /* !< (10) 故障告警干接点输出 */
    DO_RLY_SOCL  ,   /* !< (11) SOC过低干接点输出 */
    DO_SYS_RLED  ,   /* !< (12) 系统运行指示灯 */
    DO_SYS_POW   ,   /* !< (13) 系统电源控制 */
    DO_SYS_DCDC  ,   /* !< (14) 系统电源DCDC控制 */
    DO_BL_POW    ,   /* !< (15) 蓝牙电源控制 */
    DO_LCD_POW   ,   /* !< (16) 屏幕电源控制 */
    DO_LIMIT_10A ,   /* !< (17) 限流10A */
    DO_CAN_RES   ,   /* !< (18) CAN 匹配电阻 */
    DO_FAN_CTRL  ,   /* !< (19) 风扇控制 */
    DO_HOT_CTRL  ,   /* !< (20) 加热控制 */
    DO_SPRO_CTRL ,   /* !< (21) 二次保护控制 */
    DO_PCHG_CTRL ,   /* !< (22) 预充控制 */
    DO_CMOS_CTRL ,   /* !< (23) 充电MOS控制 */
    DO_DMOS_CTRL ,   /* !< (24) 放电MOS控制 */
    DO_BATT_SMP  ,   /* !< (25) 总压采样控制 */
	//DO_BEEP_CTRL ,   /* !< (26) 控制蜂鸣器 */
	DO_NTC_POW   ,   /* !< (27) NTC 电源*/
	DO_LIMIT_5A  ,   /* !< (28) 限流5A */
    
    DO_ID_MAX ,
}do_id_type;
/* @brief */

/* variables -----------------------------------------------------------------*/

/*******************************************************************************
 * public API List
 ******************************************************************************/
void If_do_init_all(void);
void If_do_init_id(do_id_type do_id , do_state_type set_state);
void If_do_set_output(do_id_type do_id , do_state_type set_state);
do_state_type If_do_get_out_state(uint8_t do_id);

#ifdef __cplusplus
}
#endif

#endif  /* #ifndef __IF_DO_H_ */
/********** Copyright (c) 2023 JBD-Energy Storage Technology Co. LTD *********/
